// #ifndef __M_LOGGER_H__
// #define __M_LOGGER_H__

// #include <iostream>
// #include <spdlog/spdlog.h>
// #include <spdlog/async.h>
// #include <spdlog/sinks/stdout_color_sinks.h>
// #include <spdlog/sinks/basic_file_sink.h>

// // 创建一个全局的日志器对象
// std::shared_ptr<spdlog::logger> g_default_logger;

// // bool mode  true->发布模式, false->调试模式 
// void initLogger(bool mode, const std::string &file_name, int level)
// {
//     if(mode == false)
//     {
//         // 将全局的这个日志器对象设置为 标准输出日志器
//         g_default_logger = spdlog::stdout_color_mt("default_logger");
//         g_default_logger->set_level(spdlog::level::trace);
//         g_default_logger->flush_on(spdlog::level::trace);
//     }
//     else
//     {
//         g_default_logger = spdlog::basic_logger_mt("file_logger", file_name);
//         g_default_logger->set_level((spdlog::level::level_enum)level);
//         g_default_logger->flush_on((spdlog::level::level_enum)level);        
//     }
//         // // 设置日志输出格式
//     g_default_logger->set_pattern("[%n][%H:%M:%S][%t][%-8l]%v");
    

// }
// #define LOG_TRACE(format, ...) g_default_logger->trace(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)
// #define LOG_DEBUG(format, ...) g_default_logger->info(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)
// #define LOG_INFO(format, ...) g_default_logger->debug(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)
// #define LOG_WARN(format, ...) g_default_logger->warn(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)
// #define LOG_ERROR(format, ...) g_default_logger->error(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)
// #define LOG_FATAL(format, ...) g_default_logger->critical(std::string("[{}:{}] ") + format, __FILE__, __LINE__, ##__VA_ARGS__)

// #endif